﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace IT_Pro.Forms
{
    public partial class frmMayViTinh : DevExpress.XtraEditors.XtraForm
    {
        public frmMayViTinh()
        {
            InitializeComponent();
        }

        private void LoadDuLieuvaoForm()
        {
            // nha cung cap
            cboNCC.Properties.DataSource = Class.MT_MayViTinh.HienthidsDL("MT_NhaCungCap");
            cboNCC.Properties.DisplayMember = "TenNhaCC";
            cboNCC.Properties.ValueMember = "MaNhaCC";
           // cboNCC.Properties

            // tinh trang
            cboTinhTrang.Properties.DataSource = Class.MT_MayViTinh.HienthidsDL("MT_TinhTrang");
            cboTinhTrang.Properties.DisplayMember = "TenTT";
            cboTinhTrang.Properties.ValueMember = "IDTT";

            // linh kien
            cboLinhKien.Properties.DataSource = Class.MT_MayViTinh.HienthidsDL("MT_DanhMucLinhKien");
            cboLinhKien.Properties.DisplayMember = "TenLK";
            cboLinhKien.Properties.ValueMember = "MaLK";

            dateNgayMua.DateTime = DateTime.Now;
            int nam = DateTime.Today.Year + 1;
            int thang = DateTime.Today.Month;
            int ngay = DateTime.Today.Day;

            dateNgayHetHan.DateTime = DateTime.Parse(thang.ToString() + "/" + ngay.ToString() + "/" + nam.ToString()); 
            dateHanBaoHanh.DateTime = DateTime.Parse(thang.ToString() + "/" + ngay.ToString() + "/" + nam.ToString()); 
        }

        private void frmMayViTinh_Load(object sender, EventArgs e)
        {
            LoadDuLieuvaoForm();
        }

        private void btnTao_Click(object sender, EventArgs e)
        {
            if (!kiemtradulieuMamay())
            {
                MessageBox.Show("Dữ liệu bạn nhập chưa hơp lệ ");
                return;
            }
            Class.MT_MayViTinh mt = new Class.MT_MayViTinh();
            mt.MaMayTinh = txtMaMay.Text;
            mt.MaNhaCC = cboNCC.EditValue.ToString();
            mt.NgayMua = DateTime.Parse(dateNgayMua.EditValue.ToString());
            mt.NgayHetHan = DateTime.Parse(dateNgayHetHan.EditValue.ToString());
            mt.TinhTrang = cboTinhTrang.EditValue.ToString();
            try
            {
                if (Class.MT_MayViTinh.ThemMayTinh(mt))
                {
                    MessageBox.Show("Thêm Máy tính thành công ! \n Vui lòng cập nhật danh sách linh kiện cho máy: " + mt .MaMayTinh+ "");
                    hienthicapnhatChitietMay();
                    panelCapNhat.Enabled = false;
                }
                else
                {
                    MessageBox.Show("Mã Máy vi tính đã có trong hệ thống. vui lòng chọn mã khác");
                }
            }
            catch
            {
                MessageBox.Show("Thêm Máy tính vào CSDL thất bại !");
            }
        }
        private bool kiemtradulieuMamay()
        {
            if (txtMaMay.Text.Length < 1)
            {
                txtMaMay.Focus();
                return false;                
            }
          
            if (cboNCC.EditValue.ToString() == "")
            {
                cboNCC.Focus();
                return false;               
            }
            DateTime _ngMua,_ngHethan;
            _ngMua=DateTime.Parse(dateNgayMua.EditValue.ToString());
            _ngHethan=DateTime.Parse(dateNgayHetHan.EditValue.ToString());

            if (_ngMua > _ngHethan)
            {
                dateNgayHetHan.Focus();
                return false;                
            }

            if (cboTinhTrang.EditValue.ToString() == "")
            {
                cboTinhTrang.Focus();
                return false;               
            }
            return true;
        }

        private void hienthicapnhatChitietMay()
        {
            groupTaoMay.Enabled = false;
            groupCTMay.Enabled = true;
            dsChiTietMay();
        }

        private bool kiemtradulieuCTmaytinh()
        {
            if (cboLinhKien.EditValue.ToString() == "")
            {
                cboLinhKien.Focus();
                return false;
            }

            return true;
        }

        private void txtMaMay_Validated(object sender, EventArgs e)
        {
            txtMaMay.Text = txtMaMay.Text.ToUpper();
        }

        private void btnThemLK_Click(object sender, EventArgs e)
        {
            if (!kiemtradulieuCTmaytinh())
            {
                MessageBox.Show("Dữ liệu bạn nhập chưa hơp lệ ");
                return;
            }

            Class.MT_CTMayViTinh ctmt = new Class.MT_CTMayViTinh();
            ctmt.MaMay = txtMaMay.Text;
            ctmt.MaLinhKien = cboLinhKien.EditValue.ToString();
            ctmt.HanBaoHanh = DateTime.Parse(dateHanBaoHanh.EditValue.ToString());
            ctmt.NhaCC = cboNCC.EditValue.ToString();
            try
            {
                if (Class.MT_CTMayViTinh.ThemCTMayTinh(ctmt))
                {
                    MessageBox.Show("Thêm linh kiện : " + ctmt.MaLinhKien + " cho máy : " + ctmt.MaMay + " thành công !");
                    dsChiTietMay();
                }               
            }
            catch
            {
                MessageBox.Show("Thêm Linh kiện vào CSDL thất bại !");
            }
        }

        private void dsChiTietMay()
        {
            gridLinhKien.DataSource = Class.MT_CTMayViTinh.HienthidsCTMay(txtMaMay.Text);
        }

        private void btnXoaLK_Click(object sender, EventArgs e)
        {
            if (gridChiTietMayTinh.DataRowCount > 0)
            {
                int SelectedRow = gridChiTietMayTinh.FocusedRowHandle;
                if (SelectedRow >= 0)
                {
                    
                    DataRow dr = gridChiTietMayTinh.GetDataRow(SelectedRow);
                    string _value = dr["IDChiTiet"].ToString();
                    try
                    {
                        Class.MT_CTMayViTinh.XoaCTMay(_value);
                        dsChiTietMay();
                    }
                    catch
                    {
                        MessageBox.Show("Có lỗi trong quá trình xóa !");
                    }
                }
            }
            else
            {
                MessageBox.Show("Bạn chưa chọn dữ liệu !");
            }
        }

        private void btnBack_Click(object sender, EventArgs e)
        {
            groupCTMay.Enabled = false;
            groupTaoMay.Enabled = true;
            LoadDuLieuvaoForm();
            txtMaMay.Text = "";
            gridLinhKien.DataSource = null;
            txtMaMay.Focus();
            panelCapNhat.Enabled = true;
        }

        private void btnTim_Click(object sender, EventArgs e)
        {
            if (txtTim.Text.Length > 0)
            {
                DataTable dt = Class.MT_MayViTinh.TimMayTinh(txtTim.Text);
                if (dt.Rows.Count < 1)
                {
                    MessageBox.Show("Không tìm thấy máy tính nào thỏa tìm kiếm ");
                }
                else
                {
                    txtMaMay.Text = dt.Rows[0]["MaMay"].ToString();
                    cboNCC.EditValue = dt.Rows[0]["NhaCungCap"].ToString();
                    dateNgayMua.DateTime =DateTime.Parse( dt.Rows[0]["NgayMua"].ToString());
                    dateNgayHetHan.DateTime = DateTime.Parse(dt.Rows[0]["NgayHetHan"].ToString());
                    cboTinhTrang.EditValue = dt.Rows[0]["TinhTrang"].ToString();
                    dsChiTietMay();
                    btnCapNhatLK.Enabled = true;
                }

            }
        }

        private void btnCapNhatLK_Click(object sender, EventArgs e)
        {
            panelCapNhat.Enabled = false;
            groupCTMay.Enabled = true;
            groupTaoMay.Enabled = false;
        }

       
    }
}